1 /* 2 3 Boost Software License - Version 1.0 - August 17th, 2003 4 5 Permission is hereby granted, free of charge, to any person or organization 6 obtaining a copy of the software and accompanying documentation covered by 7 this license (the "Software") to use, reproduce, display, distribute, 8 execute, and transmit the Software, and to prepare derivative works of the 9 Software, and to permit third-parties to whom the Software is furnished to 10 do so, all subject to the following: 11 12 The copyright notices in the Software and this entire statement, including 13 the above license grant, this restriction and the following disclaimer, 14 must be included in all copies of the Software, in whole or in part, and 15 all derivative works of the Software, unless such copies or derivative 16 works are solely in the form of machine-executable object code generated by 17 a source language processor. 18 19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 DEALINGS IN THE SOFTWARE. 26 27 */ 28 29 module derelict.purple.whiteboard; 30 31 import derelict.glib.gtypes; 32 import derelict.glib.glibconfig; 33 import derelict.glib.glist; 34 import derelict.purple.account; 35 extern (C): 36 37 alias _PurpleWhiteboardPrplOps PurpleWhiteboardPrplOps; 38 alias _PurpleWhiteboard PurpleWhiteboard; 39 alias _PurpleWhiteboardUiOps PurpleWhiteboardUiOps; 40 41 struct _PurpleWhiteboard 42 { 43 int state; 44 PurpleAccount* account; 45 char* who; 46 void* ui_data; 47 void* proto_data; 48 PurpleWhiteboardPrplOps* prpl_ops; 49 GList* draw_list; 50 } 51 52 struct _PurpleWhiteboardUiOps 53 { 54 void function (PurpleWhiteboard*) create; 55 void function (PurpleWhiteboard*) destroy; 56 void function (PurpleWhiteboard*, int, int) set_dimensions; 57 void function (PurpleWhiteboard*, int, int) set_brush; 58 void function (PurpleWhiteboard*, int, int, int, int) draw_point; 59 void function (PurpleWhiteboard*, int, int, int, int, int, int) draw_line; 60 void function (PurpleWhiteboard*) clear; 61 void function () _purple_reserved1; 62 void function () _purple_reserved2; 63 void function () _purple_reserved3; 64 void function () _purple_reserved4; 65 } 66 67 struct _PurpleWhiteboardPrplOps 68 { 69 void function (PurpleWhiteboard*) start; 70 void function (PurpleWhiteboard*) end; 71 void function (const(PurpleWhiteboard)*, int*, int*) get_dimensions; 72 void function (PurpleWhiteboard*, int, int) set_dimensions; 73 void function (const(PurpleWhiteboard)*, int*, int*) get_brush; 74 void function (PurpleWhiteboard*, int, int) set_brush; 75 void function (PurpleWhiteboard*, GList*) send_draw_list; 76 void function (PurpleWhiteboard*) clear; 77 void function () _purple_reserved1; 78 void function () _purple_reserved2; 79 void function () _purple_reserved3; 80 void function () _purple_reserved4; 81 } 82 83 84 version(Derelict_Link_Static) 85 { 86 extern( C ) nothrow 87 { 88 void purple_whiteboard_set_ui_ops(PurpleWhiteboardUiOps* ops); 89 void purple_whiteboard_set_prpl_ops(PurpleWhiteboard* wb, PurpleWhiteboardPrplOps* ops); 90 PurpleWhiteboard* purple_whiteboard_create(PurpleAccount* account, const(char)* who, int state); 91 void purple_whiteboard_destroy(PurpleWhiteboard* wb); 92 void purple_whiteboard_start(PurpleWhiteboard* wb); 93 PurpleWhiteboard* purple_whiteboard_get_session(const(PurpleAccount)* account, const(char)* who); 94 void purple_whiteboard_draw_list_destroy(GList* draw_list); 95 gboolean purple_whiteboard_get_dimensions(const(PurpleWhiteboard)* wb, int* width, int* height); 96 void purple_whiteboard_set_dimensions(PurpleWhiteboard* wb, int width, int height); 97 void purple_whiteboard_draw_point(PurpleWhiteboard* wb, int x, int y, int color, int size); 98 void purple_whiteboard_send_draw_list(PurpleWhiteboard* wb, GList* list); 99 void purple_whiteboard_draw_line(PurpleWhiteboard* wb, int x1, int y1, int x2, int y2, int color, int size); 100 void purple_whiteboard_clear(PurpleWhiteboard* wb); 101 void purple_whiteboard_send_clear(PurpleWhiteboard* wb); 102 void purple_whiteboard_send_brush(PurpleWhiteboard* wb, int size, int color); 103 gboolean purple_whiteboard_get_brush(const(PurpleWhiteboard)* wb, int* size, int* color); 104 void purple_whiteboard_set_brush(PurpleWhiteboard* wb, int size, int color); 105 } 106 } 107 else 108 { 109 extern( C ) nothrow 110 { 111 alias da_purple_whiteboard_set_ui_ops = void function(PurpleWhiteboardUiOps* ops); 112 alias da_purple_whiteboard_set_prpl_ops = void function(PurpleWhiteboard* wb, PurpleWhiteboardPrplOps* ops); 113 alias da_purple_whiteboard_create = PurpleWhiteboard* function(PurpleAccount* account, const(char)* who, int state); 114 alias da_purple_whiteboard_destroy = void function(PurpleWhiteboard* wb); 115 alias da_purple_whiteboard_start = void function(PurpleWhiteboard* wb); 116 alias da_purple_whiteboard_get_session = PurpleWhiteboard* function(const(PurpleAccount)* account, const(char)* who); 117 alias da_purple_whiteboard_draw_list_destroy = void function(GList* draw_list); 118 alias da_purple_whiteboard_get_dimensions = gboolean function(const(PurpleWhiteboard)* wb, int* width, int* height); 119 alias da_purple_whiteboard_set_dimensions = void function(PurpleWhiteboard* wb, int width, int height); 120 alias da_purple_whiteboard_draw_point = void function(PurpleWhiteboard* wb, int x, int y, int color, int size); 121 alias da_purple_whiteboard_send_draw_list = void function(PurpleWhiteboard* wb, GList* list); 122 alias da_purple_whiteboard_draw_line = void function(PurpleWhiteboard* wb, int x1, int y1, int x2, int y2, int color, int size); 123 alias da_purple_whiteboard_clear = void function(PurpleWhiteboard* wb); 124 alias da_purple_whiteboard_send_clear = void function(PurpleWhiteboard* wb); 125 alias da_purple_whiteboard_send_brush = void function(PurpleWhiteboard* wb, int size, int color); 126 alias da_purple_whiteboard_get_brush = gboolean function(const(PurpleWhiteboard)* wb, int* size, int* color); 127 alias da_purple_whiteboard_set_brush = void function(PurpleWhiteboard* wb, int size, int color); 128 } 129 130 __gshared 131 { 132 da_purple_whiteboard_set_ui_ops purple_whiteboard_set_ui_ops; 133 da_purple_whiteboard_set_prpl_ops purple_whiteboard_set_prpl_ops; 134 da_purple_whiteboard_create purple_whiteboard_create; 135 da_purple_whiteboard_destroy purple_whiteboard_destroy; 136 da_purple_whiteboard_start purple_whiteboard_start; 137 da_purple_whiteboard_get_session purple_whiteboard_get_session; 138 da_purple_whiteboard_draw_list_destroy purple_whiteboard_draw_list_destroy; 139 da_purple_whiteboard_get_dimensions purple_whiteboard_get_dimensions; 140 da_purple_whiteboard_set_dimensions purple_whiteboard_set_dimensions; 141 da_purple_whiteboard_draw_point purple_whiteboard_draw_point; 142 da_purple_whiteboard_send_draw_list purple_whiteboard_send_draw_list; 143 da_purple_whiteboard_draw_line purple_whiteboard_draw_line; 144 da_purple_whiteboard_clear purple_whiteboard_clear; 145 da_purple_whiteboard_send_clear purple_whiteboard_send_clear; 146 da_purple_whiteboard_send_brush purple_whiteboard_send_brush; 147 da_purple_whiteboard_get_brush purple_whiteboard_get_brush; 148 da_purple_whiteboard_set_brush purple_whiteboard_set_brush; 149 } 150 }